<?php 
require_once('include/header.php');
require_once('vo/ViajesVO.php');
require_once('search/ViajesSearchCriteria.php');
require_once('logic/ViajesLogic.php');
require('conf/configuration.php');
require_once('logic/CiudadesLogic.php');
require_once('logic/ProvinciasLogic.php');
require_once('logic/TransportesLogic.php');

$ciudadesLogic = new CiudadesLogic($_POST);
$provinciasLogic = new ProvinciasLogic($_POST);
$transportesLogic = new TransportesLogic($_POST);

$logic = new ViajesLogic($_POST);
// Ordenamiento
if($_GET[order] == "asc")	
	$order= "desc";
else if($_GET[order] == "desc")	
	$order= "asc";
else 	
	$order= "desc";
if (!isset($_GET["orderby"]))
	$orderby = "Fecha";
else 	
	$orderby = $_GET["orderby"];
$smarty->assign("orderby", $orderby);
$smarty->assign("order", $order);
		
		
// Seteo el searchcriteria para mostrar la tabla con todos los resultados segun el filtro. (sin paginacion)
$viajesSearchCriteria = new ViajesSearchCriteria();
$viajesSearchCriteria->setOrderby($orderby);
$viajesSearchCriteria->setOrder($order);
//$viajesSearchCriteria->setSearch($_GET["search"]);
$viajesSearchCriteria->setInicio(1);
$viajesSearchCriteria->setFin(null);
		
$ciudadesSearchCriteria = new CiudadesSearchCriteria();
$ciudades = $ciudadesLogic->find($ciudadesSearchCriteria);
$smarty->assign("ciudades",$ciudades);
$transportesSearchCriteria = new TransportesSearchCriteria();
$transportes = $transportesLogic->find($transportesSearchCriteria);
$smarty->assign("transportes",$transportes);
		
// Controller
$action = $_GET["action"];
if ($action == null){
	$action = $_POST["action"];
}
switch ($action){
	case "save":
		$result = $logic->save($_POST);
		if ($result == "error")
			$smarty->assign("error", "Ha ocurrido un error al guardar los cambios del Registro de Viajes");
		else
			$smarty->assign("message", "El Registro de Viajesha sido actualizado");
		break;
	case "add":
		$smarty->assign("detailPage","viajesForm.tpl");
		$smarty->display("admin_generic.tpl");
		exit;break;
	case "update":
		$id = $_GET["id"];
		if ($id != null){
			$viajes = $logic->get($id);
			$smarty->assign("viajes", $viajes);
		}
		$smarty->assign("detailPage","viajesForm.tpl");
		$smarty->display("admin_generic.tpl");
		exit;break;	
	case "delete":
		$result = $logic->delete($_POST["id"]);
		if ($result == "error")
			$smarty->assign("error", "Ha ocurrido un error al eliminar el Registro de ");
		else
			$smarty->assign("message", "Se ha eliminado el Registro de ");
		break; 
}

// Paginador
$cantidad = $logic->count($viajesSearchCriteria);
$totalItemsPerPage=10;
if (isset($_GET["entradas"]))
	$totalItemsPerPage=$_GET["entradas"];
$totalPages = ceil($cantidad / $totalItemsPerPage);
$smarty->assign("totalPages", $totalPages);
$smarty->assign("totalItemsPerPage", $totalItemsPerPage);
$page = $_GET[page];
if (!$page) {
	$start = 0;
	$page = 1;
	$smarty->assign("page", $page);
}
else
	$start = ($page - 1) * $totalItemsPerPage;
$smarty->assign("page", $page);
			
			
// Obtengo solo los registros de la pagina actual.
$viajesSearchCriteria->setInicio($start);	
$viajesSearchCriteria->setOrderby($orderby);
$viajesSearchCriteria->setOrder($order);
$viajesSearchCriteria->setFin($totalItemsPerPage);
$viajes = $logic->find($viajesSearchCriteria);
			
			
$smarty->assign("allParams", CommonPlugin::getParamsAsString($_GET));
$smarty->assign("cantidad", $cantidad);
$smarty->assign("viajes", $viajes);
$smarty->assign("detailPage", "viajes.tpl");
$smarty->display("admin_generic.tpl");
			 
?>